/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#ifndef Omen_GRAPHICSDRIVER_H
#define Omen_GRAPHICSDRIVER_H

#include "OmenConfig.h"
#include "IOmenRenderer.h"

#include <vector>
#include <string>

namespace Omen {

    class IGraphicsDriver {
      
      public: 
          virtual ~IGraphicsDriver() {};                            /// <summary>Releases resources of a driver after use</summary>
          virtual const std::wstring &getName() const = 0;       /// <summary>Gets the name of the graphics driver</summary>
          virtual Omen::IRenderer* createRenderer() = 0; /// <summary>Creates a renderer using the driver's rendering API</summary>
    };

}; // namespace Omen

#endif // Omen_GRAPHICSDRIVER_H
